package org.peterf.foxish.camera;

/**
 * Defines the view of the player.
 * 
 * @author peter
 * 
 */
public interface Camera {

    /**
     * 
     * @return Height in world coordinates of the view rectangle.
     */
    public float getHeight();

    /**
     * 
     * @return Width in world coordinates of the view rectangle.
     */
    public float getWidth();

    /**
     * 
     * @return The matrix for transformation from world coordinates to standard
     *         device coordinates.
     */
    public float[] getWorldToStdMat();

    /**
     * 
     * @param stdX
     *            The standard device coordinate x, ranging from -1 to 1.
     * @return World coordinate x of this camera.
     */
    public float stdToWorldX(float stdX);

    /**
     * 
     * @param stdY
     *            The standard device coordinate y, ranging from -1 to 1.
     * @return World coordinate y of this camera.
     */
    public float stdToWorldY(float stdY);
}
